package com.req;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;

@WebServlet(urlPatterns = "/req1",name = "req1")
public class request1 extends HttpServlet {
    /**
     * 此时先来关注 ServletRequest 中的方法
     *
     * @param resp
     * @param req
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取协议
        String protocol = req.getProtocol();
        System.out.println(protocol);
        //获取请求头中的内容
        int length1 = req.getContentLength();
        System.out.println(length1);
        int length2 = req.getContentLength();
        System.out.println(length2);
        String type = req.getContentType();
        System.out.println(type);

        // 获取参数
        // 获取参数的名字
        Enumeration<String> names = req.getParameterNames();
        while (names.hasMoreElements())
        {
            String element = names.nextElement();
            // 常用方法之一 ： 根据名字获取 参数值
            String parameter = req.getParameter(element);
            System.out.println("name="+element+",value="+parameter);

        }
        // 将 请求中的参数 封装到 Map 中 ， 其中 map 的key 是 参数的名字；value 是 参数的值
        Map<String, String[]> parameterMap = req.getParameterMap();
        parameterMap.forEach((s, strings) -> System.out.println(s + " ： " + Arrays.toString(strings)));
        // 字符编码
        String encoding = req.getCharacterEncoding();
        System.out.println(encoding);
        // 设置 字符编码
        req.setCharacterEncoding("GBK");
        encoding = req.getCharacterEncoding();
        System.out.println(encoding);

    }
}
